import java.util.ArrayList;
import java.util.HashSet;
import java.util.logging.Handler;

/**
 * @Author Stark
 * @Date 2022/2/10 20:31
 */
// 1、编程求 1~10000 之间的所有“完全数”，完全数是该数的所有因子之和等于该数的数。
// 例如，6 的因子有 1、2、3，且 6=1+2+3，所以 6 是完全数。
public class Day2 {
    public static boolean perfectNumber(int num ){
        double consult = 0.0;
        double sortOfnum = Math.sqrt(num);
        ArrayList arr = new ArrayList();
        for (int i = 1; (double)i <= sortOfnum; i++) {
            consult = (double)num / i;
            if(consult % 1 == 0.0){
                Integer in = (Integer) i;
                arr.add(in);
                if(consult != (double)num && consult != sortOfnum) {
                    in = (Integer) ((int) consult);
                    arr.add(in);
                }
            }
        }
        int sum = 0;
        for (int i = 0; i < arr.size(); i++) {
            sum += (int)arr.get(i);
        }
        if(sum == num)
            return true;
        else
            return false;
    }
    //2、猴子吃桃问题。猴子第一天摘下若干个桃子，当时就吃了一半，还不过瘾，就又吃了一个。第二天又将剩下的桃
    //子吃掉一半，又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第
    //一天共摘下来多少个桃子？
    public static int howManyPeach(int day){
        int sum = 1;
        for (int i = 0; i < day; i++) {
            sum = (sum + 1) * 2;
        }
        return sum;
    }
    public static void main(String[] args) {
//        System.out.println("1-10000之间的完全数：");
//        for (int i = 1; i < 10001; i++) {
//            if(Day2.perfectNumber(i)){
//                System.out.print(i + " ");
//            }
//        }
        System.out.println("一共有" + Day2.howManyPeach(10) + "个桃子");
    }
}
